/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ec.socialfun.entidades;

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.xml.bind.annotation.XmlRootElement;
import org.jboss.logging.Logger;

/**
 *
 * @author sebas
 */
@Entity
@Table(name = "productos")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Productos.findAll", query = "SELECT p FROM Productos p"),
    @NamedQuery(name = "Productos.findByPrCodigo", query = "SELECT p FROM Productos p WHERE p.prCodigo = :prCodigo"),
    @NamedQuery(name = "Productos.findByPrNombre", query = "SELECT p FROM Productos p WHERE p.prNombre = :prNombre"),
    @NamedQuery(name = "Productos.findByPrPrecio", query = "SELECT p FROM Productos p WHERE p.prPrecio = :prPrecio"),
    @NamedQuery(name = "Productos.findByPrPuntos", query = "SELECT p FROM Productos p WHERE p.prPuntos = :prPuntos"),
    @NamedQuery(name = "Productos.findByPrEstado", query = "SELECT p FROM Productos p WHERE p.prEstado = :prEstado"),
    @NamedQuery(name = "Productos.recuperarProductosLocal", query = "SELECT p FROM Productos p where p.loCodigo = :local"),
    @NamedQuery(name = "Productos.recuperarCarta", query = "SELECT p FROM Productos p where p.loCodigo = :local and p.prEstado = :estado")})
public class Productos implements Serializable {
    private static final Logger LOG = Logger.getLogger(Productos.class.getName());
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "PR_CODIGO")
    private Integer prCodigo;
    @Basic(optional = false)
    @Column(name = "PR_NOMBRE")
    private String prNombre;
    @Column(name = "PR_PRECIO")
    private double prPrecio;
    @Column(name = "PR_PUNTOS")
    private int prPuntos;
    @Basic(optional = false)
    @Column(name = "PR_ESTADO")
    private String prEstado;
    @Column(name = "PR_IMAGEN")
    private String prImagen;
    @Column(name = "PR_DESCRIPCION")
    private String prDescripcion;
    @JoinColumn(name = "LO_CODIGO", referencedColumnName = "LO_CODIGO")
    @ManyToOne(optional = false)
    private Local loCodigo;
    @Transient
    private String puntos;

    public Productos() {
    }

    public Productos(Integer prCodigo) {
        this.prCodigo = prCodigo;
    }

    public Productos(Integer prCodigo, String prNombre, String prEstado) {
        this.prCodigo = prCodigo;
        this.prNombre = prNombre;
        this.prEstado = prEstado;
    }

    public Integer getPrCodigo() {
        return prCodigo;
    }

    public void setPrCodigo(Integer prCodigo) {
        this.prCodigo = prCodigo;
    }

    public String getPrNombre() {
        return prNombre;
    }

    public void setPrNombre(String prNombre) {
        this.prNombre = prNombre;
    }

    public double getPrPrecio() {
        return prPrecio;
    }

    public void setPrPrecio(double prPrecio) {
        this.prPrecio = prPrecio;
    }

    public int getPrPuntos() {
        return prPuntos;
    }

    public void setPrPuntos(int prPuntos) {
        LOG.info("SET "+prPuntos);
        this.prPuntos = prPuntos;
    }

    public String getPrEstado() {
        return prEstado;
    }

    public void setPrEstado(String prEstado) {
        this.prEstado = prEstado;
    }

    public Local getLoCodigo() {
        return loCodigo;
    }

    public void setLoCodigo(Local loCodigo) {
        this.loCodigo = loCodigo;
    }

    public String getPuntos() {
        return puntos;
    }

    public void setPuntos(String puntos) {
        this.puntos = puntos;
    }

    public String getPrImagen() {
        return prImagen;
    }

    public void setPrImagen(String prImagen) {
        this.prImagen = prImagen;
    }

    public String getPrDescripcion() {
        return prDescripcion;
    }

    public void setPrDescripcion(String prDescripcion) {
        this.prDescripcion = prDescripcion;
    }
    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (prCodigo != null ? prCodigo.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Productos)) {
            return false;
        }
        Productos other = (Productos) object;
        if ((this.prCodigo == null && other.prCodigo != null) || (this.prCodigo != null && !this.prCodigo.equals(other.prCodigo))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.ec.socialfun.entidades.Productos[ prCodigo=" + prCodigo + " ]";
    }
    
    public void convertir()
    {
        LOG.info("PUNTOOS  "+this.puntos);
        setPrPuntos(Integer.parseInt(this.puntos));
    }
}
